package com.ly.heart.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ly.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.experimental.Accessors;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 差旅费报销单对象 erp_king_travel_business_reimbursement
 *
 * @author wutao
 * @date 2024-08-23
 */
@TableName("erp_king_travel_business_reimbursement")
@ApiModel(value = "erp_king_travel_business_reimbursement对象", description = "差旅费报销单")
@Data
//加一个什么注解可以连续对这个对象set属性
@Accessors(chain = true)
public class KingTravelBusinessReimbursementEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 差旅费报销单主键id
     */
    @TableId(type = IdType.INPUT)
    private String id;

    /**
     * 单据编号
     */
    @ApiModelProperty("单据编号")
    @TableField("doc_code")
    @Excel(name = "单据编号")
    private String docCode;

    /**
     * 申请组织
     */
    @ApiModelProperty("申请组织")
    @TableField("apply_org")
    @Excel(name = "申请组织")
    private String applyOrg;

    /**
     * 申请部门
     */
    @ApiModelProperty("申请部门")
    @TableField("apply_dept")
    @Excel(name = "申请部门")
    private String applyDept;

    /**
     * 申请人
     */
    @ApiModelProperty("申请人")
    @TableField("apply_user")
    @Excel(name = "申请人")
    private String applyUser;

    /**
     * 联系电话
     */
    @ApiModelProperty("联系电话")
    @TableField("apply_phone")
    @Excel(name = "联系电话")
    private String applyPhone;

    /**
     * 事由
     */
    @ApiModelProperty("事由")
    @TableField("reason")
    @Excel(name = "事由")
    private String reason;

    /**
     * 申请时间
     */
    @ApiModelProperty("申请时间")
    @TableField("apply_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applyTime;

    /**
     * 费用承担组织
     */
    @ApiModelProperty("费用承担组织")
    @TableField("cost_bearing_org")
    @Excel(name = "费用承担组织")
    private String costBearingOrg;

    /**
     * 费用承担部门
     */
    @ApiModelProperty("费用承担部门")
    @TableField("cost_bearing_dept")
    @Excel(name = "费用承担部门")
    private String costBearingDept;

    /**
     * 往来单位类型
     */
    @ApiModelProperty("往来单位类型")
    @TableField("contact_unit_type")
    @Excel(name = "往来单位类型")
    private String contactUnitType;

    /**
     * 往来单位
     */
    @ApiModelProperty("往来单位")
    @TableField("contact_unit")
    @Excel(name = "往来单位")
    private String contactUnit;

    /**
     * 可用借款余额
     */
    @ApiModelProperty("可用借款余额")
    @TableField("available_loan_balance")
    @Excel(name = "可用借款余额")
    private String availableLoanBalance;

    /**
     * 币别
     */
    @ApiModelProperty("币别")
    @TableField("currency")
    @Excel(name = "币别")
    private String currency;

    /**
     * 同行人员
     */
    @ApiModelProperty("同行人员")
    @TableField("colleagues")
    @Excel(name = "同行人员")
    private String colleagues;

    /**
     * 费用外部承担(1是2否)
     */
    @ApiModelProperty("费用外部承担(1是2否)")
    @TableField("is_external_cost_sharing")
    @Excel(name = "费用外部承担(1是2否)")
    private String isExternalCostSharing;

    /**
     * 外部往来单位类型
     */
    @ApiModelProperty("外部往来单位类型")
    @TableField("external_contact_unit_type")
    @Excel(name = "外部往来单位类型")
    private String externalContactUnitType;

    /**
     * 外部往来单位
     */
    @ApiModelProperty("外部往来单位")
    @TableField("external_contact_unit")
    @Excel(name = "外部往来单位")
    private String externalContactUnit;

    /**
     * 申请付款(1是2否)
     */
    @ApiModelProperty("申请付款(1是2否)")
    @TableField("is_apply_payment")
    @Excel(name = "申请付款(1是2否)")
    private String isApplyPayment;

    /**
     * 申请退款(1是2否)
     */
    @ApiModelProperty("申请退款(1是2否)")
    @TableField("is_apply_refund")
    @Excel(name = "申请退款(1是2否)")
    private String isApplyRefund;

    /**
     * 实报实付(1是2否)
     */
    @ApiModelProperty("实报实付(1是2否)")
    @TableField("is_actual_payment")
    @Excel(name = "实报实付(1是2否)")
    private String isActualPayment;

    /**
     * 多收款人(1是2否)
     */
    @ApiModelProperty("多收款人(1是2否)")
    @TableField("is_multiple_receipts")
    @Excel(name = "多收款人(1是2否)")
    private String isMultipleReceipts;

    /**
     * 删除标识(1有效2无效)
     */
    @ApiModelProperty("删除标识(1有效2无效)")
    @TableField("is_used")
    @Excel(name = "删除标识(1有效2无效)")
    private Long isUsed;

    /**
     * 流程实例id
     */
    @ApiModelProperty("流程实例id")
    @TableField("instance_id")
    @Excel(name = "流程实例id")
    private String instanceId;

    /**
     * 状态
     */
    @ApiModelProperty("状态")
    @TableField("state")
    @Excel(name = "状态")
    private String state;

    /**
     * 行程单
     */
    @TableField (exist = false)
    private List<KingTravelTripEntity> kingTravelTripEntityList;

}
